use super::crypt_algid::CRYPT_KDF_AlgId;
use super::crypt_types::CRYPT_EAL_LibCtx;
use crate::bsl::bsl_params::BSL_Param;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct EalKdfCtx {
    _unused: [u8; 0],
}
pub type CRYPT_EAL_KdfCTX = EalKdfCtx;
unsafe extern "C" {
    pub fn CRYPT_EAL_KdfIsValidAlgId(id: CRYPT_KDF_AlgId) -> bool;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_ProviderKdfNewCtx(
        libCtx: *mut CRYPT_EAL_LibCtx,
        algId: i32,
        attrName: *const ::std::os::raw::c_char,
    ) -> *mut CRYPT_EAL_KdfCTX;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_KdfNewCtx(algId: CRYPT_KDF_AlgId) -> *mut CRYPT_EAL_KdfCTX;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_KdfSetParam(ctx: *mut CRYPT_EAL_KdfCTX, param: *const BSL_Param) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_KdfDerive(ctx: *mut CRYPT_EAL_KdfCTX, key: *mut u8, keyLen: u32) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_KdfDeInitCtx(ctx: *mut CRYPT_EAL_KdfCTX) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_KdfFreeCtx(ctx: *mut CRYPT_EAL_KdfCTX);
}
